Analyse: Der erste Schritt ist die Identifizierung potenzieller Schwachstellen. Da oft CGI-Skripte für Shellshock anfällig sind, wird Nmap direkt mit dem `http-shellshock`-Skript auf ein vermutetes CGI-Skript getestet.
Bewertung: Der Scan (Ausgabe nicht gezeigt) hat vermutlich eine Shellshock-Anfälligkeit im Skript `/cgi-bin/admin.cgi` signalisiert.
Empfehlung (Pentester): Die Shellshock-Anfälligkeit manuell mit `curl` verifizieren.
Empfehlung (Admin): CGI-Skripte und den Webserver auf Shellshock-Anfälligkeit prüfen und patchen. Alte CGI-Skripte meiden.
VULNERABLE TO SHELLSHOCK
Analyse: Zwei `curl`-Befehle werden verwendet, um die Shellshock-Schwachstelle zu bestätigen:
Bewertung: Kritische RCE-Schwachstelle (Shellshock) in `/cgi-bin/admin.cgi` bestätigt. Dies ermöglicht die Ausführung beliebiger Befehle auf dem Server im Kontext des Webserver-Benutzers.
Empfehlung (Pentester): Die Schwachstelle ausnutzen, um eine Reverse Shell zu erhalten.
Empfehlung (Admin): System dringend patchen (Bash aktualisieren) oder anfällige CGI-Skripte entfernen/ersetzen.
Analyse: Mit Feroxbuster wird nach weiteren CGI-Skripten gesucht.
[...] 200 GET 7l 28w 286c http://condor.vm/cgi-bin/condor.sh [...]
Analyse: Feroxbuster findet ein weiteres Skript: `/cgi-bin/condor.sh`. Da das Ziel `condor.vm` heißt, ist dies möglicherweise ein relevanteres oder spezifischeres Skript.
Bewertung: Ein weiteres potenzielles Ziel für Shellshock oder andere Angriffe.
Empfehlung (Pentester): Versuchen, die Shellshock-Payload gegen `/cgi-bin/condor.sh` zu richten.
Empfehlung (Admin): Alle CGI-Skripte überprüfen und absichern.
Analyse: Es wird versucht, die Shellshock-Schwachstelle im neu gefundenen Skript `/cgi-bin/condor.sh` auszunutzen, um eine Reverse Shell zu erhalten. Diesmal wird die Payload über den `Cookie`-Header injiziert.
Bewertung: Der `curl`-Befehl sendet die Anfrage mit der injizierten Reverse-Shell-Payload. Ein Listener wird benötigt, um die Verbindung aufzufangen.
Empfehlung (Pentester): Einen Netcat-Listener auf Port 9001 starten.
Empfehlung (Admin): Shellshock patchen.
listening on [any] 9001 ... connect to [192.168.2.140] from (UNKNOWN) [192.168.2.128] 45198 bash: cannot set terminal process group (429): Inappropriate ioctl for device bash: no job control in this shell bash-4.3$
Analyse: Der Netcat-Listener empfängt erfolgreich die eingehende Verbindung vom Zielsystem. Der Prompt `bash-4.3$` deutet auf eine ältere Bash-Version hin und zeigt, dass die Shell nicht als Root läuft (vermutlich als Webserver-Benutzer wie `apache` oder `www-data`).
Bewertung: Erfolg! Initialer Zugriff wurde über die Shellshock-Schwachstelle erlangt.
Empfehlung (Pentester): Shell stabilisieren (`python -c 'import pty...'` o.ä.), Benutzer identifizieren (`id`, `whoami`), Home-Verzeichnisse und Sudo-Rechte prüfen.
Empfehlung (Admin): Shellshock patchen.
Analyse: In der erhaltenen Shell (vermutlich als `apache` oder `www-data`) wird das System weiter erkundet.
drwxr-xr-x 3 kevin kevin 4096 Nov 6 2021 .
drwxr-xr-x 4 root root 4096 Nov 6 2021 ..
lrwxrwxrwx 1 root root 9 Nov 6 2021 .bash_history -> /dev/null
-rw-r--r-- 1 kevin kevin 220 Nov 6 2021 .bash_logout
-rw-r--r-- 1 kevin kevin 3526 Nov 6 2021 .bashrc
-rw-r--r-- 1 kevin kevin 4060 Nov 6 2021 .i_did_it_again
drwxr-xr-x 3 kevin kevin 4096 Nov 6 2021 .local
-rw-r--r-- 1 kevin kevin 807 Nov 6 2021 .profile
Analyse: Der Wechsel in das Verzeichnis `/home/kevin` und das Auflisten des Inhalts ist möglich. Eine interessante versteckte Datei `.i_did_it_again` wird gefunden.
Bewertung: Der Webserver-Benutzer hat Leserechte auf `/home/kevin`. Die Datei `.i_did_it_again` ist verdächtig.
Empfehlung (Pentester): Den Inhalt von `.i_did_it_again` untersuchen.
Empfehlung (Admin): Berechtigungen von Home-Verzeichnissen prüfen. Webserver-Benutzer sollten keinen Zugriff auf Home-Verzeichnisse anderer Benutzer haben.
8395d26f20d997f971919e93edee06d3:$6$TCX.c/9ARPR3KCFE$4ZhsWox9dPa8/CG4O6socHVYYM6cJbtpaBx9cefvABC8gP0vMrWsgBhUUGoAHWnJI.X.NyzP5sbtMpGGfwuS11 307dcfe346e38992d47000630bd19579:$6$gwBgUJgQHGxTex13$b/67Oe7CIvDS85hex4GrHC2RuEkLRfWHAAgimHNyxC/L5biEqSly920uazvDXx3ACrM.srme6Us78aWUEGNAG0 c34040783efce8ebedb253e854c79569:$6$WAq1h/mdGSMb9QVv$aN54cSdOf3TEsGZt94op0s9hDGWwEusVLi8PtfMmzmOl3AMNGgBMJqQaRHxPrpSFJTLB2T.vFnbYKv6eQpzUT1 0edc0358ba098a665397f277d9caa307:$6$n5AKhYSQNaywXCs0$k5X7gxoiRh/rfcUVxLHmFlhINTxnsJrqCPRCQYdKmn8UWtn2.yF8J.zqTrx3q8YdnDbdpzZvKNtK4ZqteGDEO. dd41cb18c930753cbecf993f828603dc:$6$1tKf9R.0qo7v5DjD$uYneSfO1bb4upW2xlLw.hHGeuAtCunYhdOjQS2MBdnpPcMt0ZiZee42BjDO2jmUJffTXsKdo43SjE4pqM6WqJ/ [...] (viele weitere Hashes)
Analyse: Der Inhalt von `.i_did_it_again` zeigt eine Liste von Einträgen im Format `MD5-Hash:SHA512crypt-Hash`. Dies sieht stark nach einer benutzerdefinierten Passwortdatei aus, bei der der MD5-Hash möglicherweise den Benutzernamen repräsentiert.
Bewertung: **Kritischer Fund!** Diese Datei enthält Passwort-Hashes ($6$ = SHA512crypt) für verschiedene Benutzer (repräsentiert durch MD5-Hashes). Diese können offline geknackt werden.
Empfehlung (Pentester): Den Inhalt dieser Datei auf die Angreifer-Maschine kopieren und die SHA512crypt-Hashes mit `john` oder `hashcat` knacken. Versuchen, die MD5-Hashes zu Benutzernamen zuzuordnen (z.B. durch Vergleich mit bekannten Benutzern oder Online-MD5-Datenbanken).
Empfehlung (Admin): Sensible Daten wie Passwort-Hashes niemals in unverschlüsselten Dateien in Home-Verzeichnissen speichern. Berechtigungen strikt verwalten.
Analyse (Hash Cracking): Die Hashes werden zur Angreifer-Maschine übertragen und in einer Datei `ppp` gespeichert. `john` wird mit der `rockyou.txt`-Wortliste verwendet.
Using default input encoding: UTF-8
Loaded 29 password hashes with 29 different salts (sha512crypt, crypt(3) $6$ [SHA512 256/256 AVX2 4x])
Cost 1 (iteration count) is 5000 for all loaded hashes
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
password123 (dd41cb18c930753cbecf993f828603dc)
[...]
Use the "--show" option to display all of the cracked passwords reliably
Session aborted
Analyse: John the Ripper findet das Passwort `password123` für den Hash, der zum MD5-Hash `dd41cb18c930753cbecf993f828603dc` gehört.
Analyse (Crackstation): Der MD5-Hash `dd41cb18c930753cbecf993f828603dc` wird auf Crackstation geprüft und als Benutzername `paulo` identifiziert.
crack that hash on crackstation dd41cb18c930753cbecf993f828603dc --> paulo
Bewertung: Durch Kombination der Ergebnisse von John und Crackstation wurden die Anmeldedaten für den Benutzer `paulo` ermittelt: `paulo:password123`.
Empfehlung (Pentester): Sich als Benutzer `paulo` anmelden (z.B. mit `su` aus der aktuellen Shell).
Empfehlung (Admin): Schwache Passwörter vermeiden. Keine benutzerdefinierten Passwortspeicher verwenden.
Password: password123 paulo@condor:/home/kevin$
Analyse: Mit dem Befehl `su paulo` und dem Passwort `password123` wird erfolgreich zum Benutzer `paulo` gewechselt.
Bewertung: Privilegieneskalation vom Webserver-Benutzer zu `paulo` erfolgreich.
Empfehlung (Pentester): Umgebung als `paulo` untersuchen (`id`, `pwd`, `ls`, `sudo -l`), User-Flag holen.
Empfehlung (Admin): Keine direkten Maßnahmen erforderlich.
user.txt
5870c58caa86a64fccc0d1b7b7717d39 -
Analyse: Im Home-Verzeichnis von `paulo` wird die `user.txt` gefunden und ausgelesen.
Bewertung: Der User-Flag wurde erfolgreich extrahiert.
Empfehlung (Pentester): User-Flag dokumentieren. Nach Wegen zur Root-Eskalation suchen (`sudo -l`).
Empfehlung (Admin): Keine Maßnahmen bzgl. des Flags.
User paulo may run the following commands on condor:
(ALL) NOPASSWD: /usr/bin/run-parts --new-session --regex '^sh$' /bin
Analyse: `sudo -l` zeigt, dass `paulo` den Befehl `/usr/bin/run-parts` mit spezifischen Argumenten (`--new-session --regex '^sh$' /bin`) als jeder Benutzer (implizit `root`) ohne Passwort ausführen darf.
Bewertung: **Kritischer Privilegieneskalationsvektor!** Diese `sudo`-Regel ist unsicher. `run-parts` führt Skripte aus einem Verzeichnis aus. Die Kombination der Argumente, insbesondere `--regex '^sh$'` angewendet auf `/bin`, führt dazu, dass `/bin/sh` selbst ausgeführt wird.
Empfehlung (Pentester): Die `sudo`-Regel direkt ausführen, um eine Root-Shell zu erhalten. Diese Technik ist auf GTFOBins dokumentiert.
Empfehlung (Admin): Diese `sudo`-Regel ist extrem unsicher und sollte sofort entfernt werden. `run-parts` sollte niemals auf diese Weise über `sudo` erlaubt werden.
Proof of Concept: Privilege Escalation via sudo run-parts
Die folgende Sequenz demonstriert die Ausnutzung der unsicheren `sudo`-Regel für `run-parts`.
/bin/sh: 0: can't access tty; job control turned off # id uid=0(root) gid=0(root) groups=0(root) #
Analyse: Der `sudo`-Befehl wird ausgeführt. `run-parts` findet `/bin/sh` basierend auf der Regex `^sh$` im Verzeichnis `/bin` und führt es aus. Da der Befehl mit `sudo` läuft, wird `/bin/sh` als `root` gestartet. Der Prompt wechselt zu `#` und `id` bestätigt Root-Rechte.
Bewertung: Erfolg! Root-Zugriff wurde durch Ausnutzung der `sudo`-Regel erlangt.
Empfehlung (Pentester): Root-Flag suchen.
Empfehlung (Admin): Unsichere `sudo`-Regel entfernen.
/home/paulo
root.txt
fec28c2738220437750c2c9537c706f3
Analyse: In der Root-Shell wird nach `/root` gewechselt und die Datei `root.txt` ausgelesen.
Bewertung: Der Root-Flag wurde erfolgreich extrahiert. Der Penetrationstest ist abgeschlossen.
Empfehlung (Pentester): Bericht abschließen.
Empfehlung (Admin): Keine Maßnahmen bzgl. des Flags.